package com.xuecheng.content.service;

import com.xuecheng.base.model.PageParams;
import com.xuecheng.base.model.PageResult;
import com.xuecheng.content.model.dto.AddCourseDto;
import com.xuecheng.content.model.dto.CourseBaseInfoDto;
import com.xuecheng.content.model.dto.EditCourseDto;
import com.xuecheng.content.model.dto.QueryCourseParamsDto;
import com.xuecheng.content.model.po.CourseBase;

/**
 * @author ybl
 * @date 2023/2/24 14:00
 * @description 课程基本信息管理业务接口
 * @since version-1.0
 */
public interface CourseBaseInfoService {
    /**
     * @author ybl
     * @date 2023/2/24 14:00
     * @description 课程查询接口
     * @param pageParams 分页参数
     * @param queryCourseParamsDto 条件
     * @return com.xuecheng.base.model.PageResult<com.xuecheng.content.model.po.CourseBase>
     * @since version-1.0
     */
    PageResult<CourseBase> queryCourseBaseList(PageParams pageParams, QueryCourseParamsDto queryCourseParamsDto);

    /**
     * @author ybl
     * @date 2023/2/28 14:58
     * @description 课程新增接口
     * @param companyId 教学机构id
     * @param addCourseDto 课程基本信息
     * @return com.xuecheng.content.model.dto.CourseBaseInfoDto 课程基本信息&课程营销信息
     * @since version-1.0
     */
    CourseBaseInfoDto createCourseBase(Long companyId, AddCourseDto addCourseDto);

    /**
     * @author ybl
     * @date 2023/3/1 11:11
     * @description 根据课程id查询课程基本信息，包括基本信息和营销信息
     * @param id 课程id
     * @return com.xuecheng.content.model.dto.CourseBaseInfoDto
     * @since version-1.0
     */
    CourseBaseInfoDto getCourseBaseInfo(Long id);

    /**
     * @author ybl
     * @date 2023/3/1 11:54
     * @description 修改课程信息
     * @param companyId 机构id
     * @param editCourseDto 课程信息
     * @return com.xuecheng.content.model.dto.CourseBaseInfoDto
     * @since version-1.0
     */
    CourseBaseInfoDto updateCourseBase(Long companyId, EditCourseDto editCourseDto);

    /**
     * @author ybl
     * @date 2023/3/7 16:36
     * @description 删除课程相关的基本信息、营销信息、课程计划、课程教师信息,
     * @param id 为课程id
     * @since version-1.0
     */
    void deleteCourseBase(Long id);
}